home *** CD-ROM | disk | FTP | other *** search
/ Gigantic Games 2 / Gigantic Games 2.iso / pc / _m_ / minesweeper / field.h < prev    next >
C/C++ Source or Header  |  1994-12-23  |  2KB  |  42 lines

  1. // This may look like C code, but it is really -*- C++ -*-
  2. ///////////////////////////////////////////////////////////////////////////
  3. //
  4. //  AMIGA Minesweeper - Declaration of the Field-object
  5. //
  6. //  (c) 1992 Hubert Feyrer (c9020@rrzc1.rz.uni-regensburg.de)
  7. //
  8. ///////////////////////////////////////////////////////////////////////////
  9.  
  10. #ifndef _FIELD_H
  11. #define _FIELD_H
  12.  
  13. //
  14. // Klassendeklaration für ein Feld des Mine-Programmes
  15. // Die Felder werden in einem Feld gespeichert.
  16. //
  17. class Field {
  18.   private:
  19.     int _cnt;                      // Anzahl Nachbar-Minen; -1 bei Minen
  20.     int _open;                     // Flag; 1=aufgedeckt;
  21.     struct Gadget *_gad;           // gad->UserData=this;
  22.     char txt[2];                   // Gadget-Text
  23.     int _i,_j;                     // Position im Minenfeld (x,y)
  24.   public:
  25.     enum { MARK  = 'X', BOMB  = '*', NUM   = '0', BLANK = ' ' };
  26.     static Gadget *lastgad;        // Um Liste aufzubauen;
  27.     int cnt(int c) const { _cnt=c; return _cnt; }
  28.     int cnt(void) const { return _cnt; }
  29.     int i(void) const { return _i; }
  30.     int j(void) const { return _j; }
  31.     GameStat check(int force=0);        // Feld und Nachbarfelder prüfen; 0=OK, 1=Bombe!
  32.                                    // force=1; trotz Markierung prüfen
  33.     void open(int show=0);         // Feld aufdecken; show=1: Nur Bomben hervorhe-
  34.                                    // ben, sonstige Felder grau und Blank
  35.     void clear(void);              // Feld abdecken, Spuren verwischen
  36.     GameStat mark(void);                // mit X markieren;
  37.     Field(int x, int y, int i, int j);
  38.     ~Field(void);
  39. };
  40.  
  41. #endif /* _FIELD_H */
  42.